﻿package com.firewolf.sington.allsingtons;
/**
 * 改进的单例模式，使用了synchronized同步创建对象的方法，可以防止多线程导致的灾难，但是性能不好
 * @author liuxing0
 * @function
 * @createtime 2014-9-10
 */
public class AdvancedSington {
	private static AdvancedSington uniqueInstance;
	private AdvancedSington(){}  //私有构造方法
	public static synchronized AdvancedSington getInstance(){ //使用synchronized关键字同步方法，确保每次只有一个线程进入，每次加锁会导致效率地下
		if(uniqueInstance == null)
			uniqueInstance = new AdvancedSington();
		return uniqueInstance;
	}
	
	///////////////////////////////
	/**other methods*/
	
	public void description(){
		System.out.println("xxxx,这是改进后的单例模式，可以避免多线程导致的灾难，如果是多线程并且不怎么考虑性能的话，就用我吧！！！");
	}
}
